package top.tangyh.lamp.care.vo.result;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@NoArgsConstructor
public class ObsvRecordQueryParam implements Serializable {

	@Schema(description = "系统主键，说明：精确查询")
	private Long id;

	@Schema(description = "病人识别号，说明：精确查询")
	private String patientIdent;

	@Schema(description = "病人住院号", required = true)
	@NotBlank(message = "住院号不能为空")
	private String hospitalNumber;

	@Schema(description = "早班所在日期，说明：仅startTime endTime 为空时有效; 时间戳; 仅年月日有效，时分秒会被对应的班次定应时间代替，自动处理班次跨天场景 ; ")
	private Long shiftTime;

	@Schema(description = "班次编码")
	private Long shiftCode;

	@Schema(description = "开始时间,说明：当存在班次时，以本参数为准; 时间戳")
	private Long startTime;

	@Schema(description = "结束时间，说明：当存在班次时，以本参数为准; 时间戳")
	private Long endTime;

	public ObsvRecordQueryParam(Long shiftCode, Long shiftTime, String patientIdent, String hospitalNumber) {
		this.patientIdent = patientIdent;
		this.hospitalNumber = hospitalNumber;
		this.shiftTime = shiftTime;
		this.shiftCode = shiftCode;
	}
}